#include <JXQCore/JXQGlobal>
#ifdef J_OS_WIN

#include "jserialport.h"

namespace JXQ
{

typedef JSerialPort::StopBit       StopBit;
typedef JSerialPort::CheckMode     CheckMode;
typedef JSerialPort::DataBitsType  DataBitsType;
typedef JSerialPort::FlowType      FlowType;

class J_DECL_HIDDEN JSerialPortPrivate
{
public:
};

/*------------------------------------------------------------------------*/

JSerialPort::JSerialPort() :
	d_ptr(new JSerialPortPrivate())
{

}

JSerialPort::JSerialPort(const JString &comName) :
	JBus(comName),
	d_ptr(new JSerialPortPrivate())
{

}

JSerialPort::~JSerialPort()
{
	delete d_ptr;
}

void JSerialPort::setBaudRate(uint32_t baudRate)
{
	J_UNUSED(baudRate);
}

uint32_t JSerialPort::baudRate() const
{
	return 0;
}

void JSerialPort::setStopBit(StopBit sb)
{
	J_UNUSED(sb);
}

StopBit JSerialPort::stopBit() const
{
	return SB_1Bit;
}

void JSerialPort::setCheckMode(CheckMode mode)
{
	J_UNUSED(mode);
}

CheckMode JSerialPort::checkMode() const
{
	return CM_None;
}

void JSerialPort::setDataBitsType(DataBitsType type)
{
	J_UNUSED(type);
}

DataBitsType JSerialPort::setDataBitsType() const
{
	return DBT_8;
}

void JSerialPort::setFlowControl(FlowType type)
{
	J_UNUSED(type);
}

FlowType JSerialPort::flowControl() const
{
	return Flow_Off;
}

bool JSerialPort::open(OpenMode mode)
{
	if( JBus::open(mode) )
	{
		return true;
	}
	return false;
}

bool JSerialPort::open(int handle, OpenMode mode)
{
	if( JBus::open(handle, mode) )
	{
		return true;
	}
	return false;
}

bool JSerialPort::open(const FILE *fsp, OpenMode mode)
{
	if( JBus::open(fsp, mode) )
	{
		return true;
	}
	return false;
}

} // namespace JXQ

#endif
